package edu.upc.clase.demo.dao.impl;

import edu.upc.clase.demo.dao.ServicioAdicionalDao;
import edu.upc.clase.demo.entity.ServicioAdicional;
import javax.sql.DataSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;
import org.springframework.stereotype.Repository;

/**
 *
 * @author Omar
 */
@Repository
public class ServicioAdicionalDaoImpl extends SimpleJdbcDaoSupport implements ServicioAdicionalDao {

    private static Logger log = LoggerFactory.getLogger(ServicioAdicionalDaoImpl.class);

    @Autowired
    public ServicioAdicionalDaoImpl(DataSource dataSource) {
        log.info("Asignando el dataSource");
        setDataSource(dataSource);
    }

    @Override
    public Integer insertar(ServicioAdicional servicioAdicional) {

        getJdbcTemplate().update("insert into ZSERVADD(IDLOCAL,IDCAN,NROITEM,SERVTIP,CANTIDAD,TOTSERV) values (?,?,?,?,?,?)",
                servicioAdicional.getIDLOCAL(), servicioAdicional.getIDCAN(), servicioAdicional.getNROITEM(),
                servicioAdicional.getSERVTIP(), servicioAdicional.getCantidad(), servicioAdicional.getTOTSERV());
        return getSimpleJdbcTemplate().queryForInt("call identity()");
    }

    @Override
    public ServicioAdicional buscar(ServicioAdicional servicioAdicional) {
        try {
            String Select = "select * from ZSERVADD where idlocal = '" + servicioAdicional.getIDLOCAL() + "' and nroitem = '" + servicioAdicional.getNROITEM() + "'";
            return getSimpleJdbcTemplate().queryForObject(Select,
                    new BeanPropertyRowMapper<ServicioAdicional>(ServicioAdicional.class));
        } catch (EmptyResultDataAccessException e) {
            return null;
        }
    }
}
